package com.kfm.am.stream;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Stream;

public class Demo02 {

    public static void main(String[] args) {
        // 有一个整数集合，分别完成以下操作：
        // 所有元素之和 reduce
        // 最⼤值 max
        // 最⼩值 min   末端方法
        List<Integer> list = new ArrayList<>();
        Collections.addAll(list, 1, 2, 3, 4);
        Stream<Integer> stream = list.stream();
//        stream.sorted().sorted().sorted().sorted(); 中间方法要连续调用 负责可能会出现异常或者提示流已经被关闭
//        stream.sorted();
//        stream.reduce(null);
//        stream.max(null);
//        stream.min(null);
        Integer sum = list.stream().reduce((i1, i2) -> i1 + i2).get();
        Integer max = list.stream().max((i1, i2) -> i1 - i2).get();
        Integer min = list.stream().min((i1, i2) -> i1 - i2).get();
        System.out.println(sum);
        System.out.println(max);
        System.out.println(min);
    }
}
